home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-10 | 30.4 KB | 829 lines | [TEXT/MPS ] |
- (*
- File: TextEdit.mod
-
- Contains: TextEdit Interfaces.
-
- Version: Technology: System 7.5
- Package: Universal Interfaces 2.0 in “MPW Latest” on ETO #17
-
- Copyright: © 1984-1995 by Apple Computer, Inc.
- All rights reserved.
-
- Bugs?: If you find a problem with this file, use the Apple Bug Reporter
- stack. Include the file and version information (from above)
- in the problem description and send to:
- Internet: apple.bugs.applelink.apple.com
- AppleLink: APPLE.BUGS
-
- *)
-
- (*$IF UNDEFINED OLDROUTINENAMES*)
- (*$SET OLDROUTINENAMES FALSE*)
- (*$END*)
- (*$TAGS-*)
- (*$CALLING PASCAL*)
- MODULE TextEdit;
-
- IMPORT SYSTEM, Types, Quickdraw;
-
- (* $PUSH*)
- (* $ALIGN MAC68K*)
- (* $LibExport+*)
-
- TYPE
- TEPtr* = POINTER TO TERec;
- TEHandle* = HANDLE TO TERec (*ΔΔ POINTER TO TEPtr*);
-
- (*
- Important note about TEClickLoopProcPtr and WordBreakProcPtr
-
- At one point these were defined as returning the function result in the
- condition code Z-bit. This was correct, in that it was what the 68K
- implementation of TextEdit actually tested. But, MixedMode had a different
- idea of what returning a boolean in the Z-bit meant. MixedMode was setting
- the Z-bit the complement of what was wanted.
-
- Therefore, these ProcPtrs have been changed (back) to return the result in
- register D0. It turns out that for register based routines,
- MixedMode sets the Z-bit of the 68K emulator based on the contents
- of the return result register. Thus we can get the Z-bit set correctly.
-
- But, when TextEdit is recoded in PowerPC, if it calls a 68K ClickLoop
- or WordBreak routine, register D0 had better have the result (in addition
- to the Z-bit). Therefore all 68K apps should make sure their ClickLoop or
- WordBreak routines set register D0 at the end.
- *)
- (*
- The following ProcPtrs cannot be written in or called from a high-level
- language without the help of mixed mode or assembly glue because they
- use the following parameter-passing conventions:
-
- typedef pascal void ( *HighHookProcPtr)(const Types.Rect *r, TEPtr pTE);
- typedef pascal void ( *CaretHookProcPtr)(const Types.Rect *r, TEPtr pTE);
-
- In:
- => r on stack
- => pTE A3.L
- Out:
- none
-
- typedef pascal Boolean ( *EOLHookProcPtr)(char theChar, TEPtr pTE, TEHandle hTE);
-
- In:
- => theChar D0.B
- => pTE A3.L
- => hTE A4.L
- Out:
- <= Boolean Z bit of the CCR
-
- typedef pascal unsigned short ( *WidthHookProcPtr)(unsigned short textLen,
- unsigned short textOffset, void *textBufferPtr, TEPtr pTE, TEHandle hTE);
- typedef pascal unsigned short ( *TextWidthHookProcPtr)(unsigned short textLen,
- unsigned short textOffset, void *textBufferPtr, TEPtr pTE, TEHandle hTE);
-
- In:
- => textLen D0.W
- => textOffset D1.W
- => textBufferPtr A0.L
- => pTE A3.L
- => hTE A4.L
- Out:
- <= unsigned short D1.W
-
- typedef pascal unsigned short ( *NWidthHookProcPtr)(unsigned short styleRunLen,
- unsigned short styleRunOffset, short slop, short direction, void *textBufferPtr,
- short *lineStart, TEPtr pTE, TEHandle hTE);
-
- In:
- => styleRunLen D0.W
- => styleRunOffset D1.W
- => slop D2.W (low)
- => direction D2.W (high)
- => textBufferPtr A0.L
- => lineStart A2.L
- => pTE A3.L
- => hTE A4.L
- Out:
- <= unsigned short D1.W
-
- typedef pascal void ( *DrawHookProcPtr)(unsigned short textOffset, unsigned short drawLen,
- void *textBufferPtr, TEPtr pTE, TEHandle hTE);
-
- In:
- => textOffset D0.W
- => drawLen D1.W
- => textBufferPtr A0.L
- => pTE A3.L
- => hTE A4.L
- Out:
- none
-
- typedef pascal Boolean ( *HitTestHookProcPtr)(unsigned short styleRunLen,
- unsigned short styleRunOffset, unsigned short slop, void *textBufferPtr,
- TEPtr pTE, TEHandle hTE, unsigned short *pixelWidth, unsigned short *charOffset,
- Boolean *pixelInChar);
-
- In:
- => styleRunLen D0.W
- => styleRunOffset D1.W
- => slop D2.W
- => textBufferPtr A0.L
- => pTE A3.L
- => hTE A4.L
- Out:
- <= pixelWidth D0.W (low)
- <= Boolean D0.W (high)
- <= charOffset D1.W
- <= pixelInChar D2.W
-
- typedef pascal void ( *TEFindWordProcPtr)(unsigned short currentPos, short caller,
- TEPtr pTE, TEHandle hTE, unsigned short *wordStart, unsigned short *wordEnd);
-
- In:
- => currentPos D0.W
- => caller D2.W
- => pTE A3.L
- => hTE A4.L
- Out:
- <= wordStart D0.W
- <= wordEnd D1.W
-
- typedef pascal void ( *TERecalcProcPtr)(TEPtr pTE, unsigned short changeLength,
- unsigned short *lineStart, unsigned short *firstChar, unsigned short *lastChar);
-
- In:
- => pTE A3.L
- => changeLength D7.W
- Out:
- <= lineStart D2.W
- <= firstChar D3.W
- <= lastChar D4.W
-
- typedef pascal void ( *TEDoTextProcPtr)(TEPtr pTE, unsigned short firstChar, unsigned short lastChar,
- short selector, Quickdraw.GrafPtr *currentGrafPort, short *charPosition);
-
- In:
- => pTE A3.L
- => firstChar D3.W
- => lastChar D4.W
- => selector D7.W
- Out:
- <= currentGrafPort A0.L
- <= charPosition D0.W
-
- *)
- HighHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE ((*CONST*)VAR r: Types.Rect; pTE: TEPtr);
- EOLHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (theChar: Types.ByteParameter; pTE: TEPtr; hTE: TEHandle): BOOLEAN;
- CaretHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE ((*CONST*)VAR r: Types.Rect; pTE: TEPtr);
- WidthHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (textLen: INTEGER; textOffset: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; pTE: TEPtr; hTE: TEHandle): INTEGER;
- TextWidthHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (textLen: INTEGER; textOffset: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; pTE: TEPtr; hTE: TEHandle): INTEGER;
- NWidthHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (styleRunLen: INTEGER; styleRunOffset: INTEGER; slop: INTEGER; direction: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; VAR lineStart: INTEGER; pTE: TEPtr; hTE: TEHandle): INTEGER;
- DrawHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (textOffset: INTEGER; drawLen: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; pTE: TEPtr; hTE: TEHandle);
- HitTestHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (styleRunLen: INTEGER; styleRunOffset: INTEGER; slop: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; pTE: TEPtr; hTE: TEHandle; VAR pixelWidth: INTEGER; VAR charOffset: INTEGER; VAR pixelInChar: BOOLEAN): BOOLEAN;
- TEFindWordProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (currentPos: INTEGER; caller: INTEGER; pTE: TEPtr; hTE: TEHandle; VAR wordStart: INTEGER; VAR wordEnd: INTEGER);
- TERecalcProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (pTE: TEPtr; changeLength: INTEGER; VAR lineStart: INTEGER; VAR firstChar: INTEGER; VAR lastChar: INTEGER);
- TEDoTextProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (pTE: TEPtr; firstChar: INTEGER; lastChar: INTEGER; selector: INTEGER; VAR currentGrafPort: Quickdraw.GrafPtr; VAR charPosition: INTEGER);
- (*
- TEClickLoopProcPtr uses register based parameters on the 68k and cannot
- be written in or called from a high-level language without the help of
- mixed mode or assembly glue.
-
- In:
- => pTE A3.L
- Out:
- <= return value D0.B
- *)
- TEClickLoopProcPtr* = Types.Register68kProcPtr; (* register PROCEDURE TEClickLoop*(pTE: TEPtr): BOOLEAN; *)
- (*
- WordBreakProcPtr uses register based parameters on the 68k and cannot
- be written in or called from a high-level language without the help of
- mixed mode or assembly glue.
-
- In:
- => text A0.L
- => charPos D0.W
- Out:
- <= return value D0.B
- *)
- WordBreakProcPtr* = Types.Register68kProcPtr; (* register PROCEDURE WordBreak*(text: Types.Ptr; charPos: INTEGER): BOOLEAN; *)
- HighHookUPP* = Types.UniversalProcPtr;
- EOLHookUPP* = Types.UniversalProcPtr;
- CaretHookUPP* = Types.UniversalProcPtr;
- WidthHookUPP* = Types.UniversalProcPtr;
- TextWidthHookUPP* = Types.UniversalProcPtr;
- NWidthHookUPP* = Types.UniversalProcPtr;
- DrawHookUPP* = Types.UniversalProcPtr;
- HitTestHookUPP* = Types.UniversalProcPtr;
- TEFindWordUPP* = Types.UniversalProcPtr;
- TERecalcUPP* = Types.UniversalProcPtr;
- TEDoTextUPP* = Types.UniversalProcPtr;
- TEClickLoopUPP* = Types.UniversalProcPtr;
- WordBreakUPP* = Types.UniversalProcPtr;
-
- TERec* = RECORD
- destRect*: Types.Rect;
- viewRect*: Types.Rect;
- selRect*: Types.Rect;
- lineHeight*: INTEGER;
- fontAscent*: INTEGER;
- selPoint*: Types.Point;
- selStart*: INTEGER;
- selEnd*: INTEGER;
- active*: INTEGER;
- wordBreak*: WordBreakUPP;
- clickLoop*: TEClickLoopUPP;
- clickTime*: LONGINT;
- clickLoc*: INTEGER;
- caretTime*: LONGINT;
- caretState*: INTEGER;
- just*: INTEGER;
- teLength*: INTEGER;
- hText*: Types.Handle;
- hDispatchRec*: LONGINT; (* added to replace recalBack & recalLines. it's a handle anyway *)
- clikStuff*: INTEGER;
- crOnly*: INTEGER;
- txFont*: INTEGER;
- txFace*: Types.Style; (*txFace is unpacked byte*)
- txMode*: INTEGER;
- txSize*: INTEGER;
- inPort*: Quickdraw.GrafPtr;
- highHook*: HighHookUPP;
- caretHook*: CaretHookUPP;
- nLines*: INTEGER;
- lineStarts*: ARRAY 16001 (*ΔΔ[0..16000]ΔΔ*) OF INTEGER;
- END;
-
-
- CONST
- (* Justification (word alignment) styles *)
- teJustLeft* = 0;
- teJustCenter* = 1;
- teJustRight* = -1;
- teForceLeft* = -2;
- (* new names for the Justification (word alignment) styles *)
- teFlushDefault* = 0; (*flush according to the line direction *)
- teCenter* = 1; (*center justify (word alignment) *)
- teFlushRight* = -1; (*flush right for all scripts *)
- teFlushLeft* = -2; (*flush left for all scripts *)
- (* Set/Replace style modes *)
- fontBit* = 0; (*set font*)
- faceBit* = 1; (*set face*)
- sizeBit* = 2; (*set size*)
- clrBit* = 3; (*set color*)
- addSizeBit* = 4; (*add size mode*)
- toggleBit* = 5; (*set faces in toggle mode*)
- toglBit* = 5; (* obsolete. use toggleBit *)
- (* TESetStyle/TEContinuousStyle modes *)
- doFont* = 1; (* set font (family) number*)
- doFace* = 2; (*set character style*)
- doSize* = 4; (*set type size*)
- doColor* = 8; (*set color*)
- doAll* = 15; (*set all attributes*)
- addSize* = 16; (*adjust type size*)
-
- doToggle* = 32; (*toggle mode for TESetStyle*)
- (* offsets into TEDispatchRec *)
- EOLHook* = 0; (*[UniversalProcPtr] TEEOLHook*)
- DRAWHook* = 4; (*[UniversalProcPtr] TEWidthHook*)
- WIDTHHook* = 8; (*[UniversalProcPtr] TEDrawHook*)
- HITTESTHook* = 12; (*[UniversalProcPtr] TEHitTestHook*)
- nWIDTHHook* = 24; (*[UniversalProcPtr] nTEWidthHook*)
- TextWidthHook* = 28; (*[UniversalProcPtr] TETextWidthHook*)
- (* selectors for TECustomHook *)
- intEOLHook* = 0; (*TEIntHook value*)
- intDrawHook* = 1; (*TEIntHook value*)
- intWidthHook* = 2; (*TEIntHook value*)
- intHitTestHook* = 3; (*TEIntHook value*)
- intNWidthHook* = 6; (*TEIntHook value for new version of WidthHook*)
- intTextWidthHook* = 7; (*TEIntHook value for new TextWidthHook*)
- teFAutoScroll* = 0; (*00000001b*)
- teFAutoScr* = 0; (*00000001b obsolete. use teFAutoScroll*)
- teFTextBuffering* = 1; (*00000010b*)
- teFOutlineHilite* = 2; (*00000100b*)
- teFInlineInput* = 3; (*00001000b *)
- teFUseTextServices* = 4; (*00010000b *)
-
- (* action for the new "bit (un)set" interface, TEFeatureFlag *)
- teBitClear* = 0;
- teBitSet* = 1; (*set the selector bit*)
- teBitTest* = -1; (*no change; just return the current setting*)
- (*constants for identifying the routine that called FindWord *)
- teWordSelect* = 4; (*clickExpand to select word*)
- teWordDrag* = 8; (*clickExpand to drag new word*)
- teFromFind* = 12; (*FindLine called it ($0C)*)
- teFromRecal* = 16; (*RecalLines called it ($10) obsolete *)
- (*constants for identifying TEDoText selectors *)
- teFind* = 0; (*TEDoText called for searching*)
- teHighlight* = 1; (*TEDoText called for highlighting*)
- teDraw* = -1; (*TEDoText called for drawing text*)
- teCaret* = -2; (*TEDoText called for drawing the caret*)
-
-
- TYPE
- Chars* = (*ΔΔPACKEDΔΔ*) ARRAY 32001 (*ΔΔ[0..32000]ΔΔ*) OF CHAR;
-
- CharsPtr* = POINTER TO Chars;
-
- CharsHandle* = HANDLE TO Chars (*ΔΔ POINTER TO CharsPtr*);
-
- StyleRun* = RECORD
- startChar*: INTEGER; (*starting character position*)
- styleIndex*: INTEGER; (*index in style table*)
- END;
-
- STElement* = RECORD
- stCount*: INTEGER; (*number of runs in this style*)
- stHeight*: INTEGER; (*line height*)
- stAscent*: INTEGER; (*font ascent*)
- stFont*: INTEGER; (*font (family) number*)
- stFace*: Types.Style; (*character Types.Style*)
- stSize*: INTEGER; (*size in points*)
- stColor*: Quickdraw.RGBColor; (*absolute (RGB) color*)
- END;
-
- TEStyleTable* = ARRAY 1777 (*ΔΔ[0..1776]ΔΔ*) OF STElement;
-
- STPtr* = POINTER TO TEStyleTable;
- STHandle* = HANDLE TO TEStyleTable (*ΔΔ POINTER TO STPtr*);
-
- LHElement* = RECORD
- lhHeight*: INTEGER; (*maximum height in line*)
- lhAscent*: INTEGER; (*maximum ascent in line*)
- END;
-
- LHTable* = ARRAY 8001 (*ΔΔ[0..8000]ΔΔ*) OF LHElement;
-
- LHPtr* = POINTER TO LHTable;
- LHHandle* = HANDLE TO LHTable (*ΔΔ POINTER TO LHPtr*);
-
- ScrpSTElement* = RECORD
- scrpStartChar*: LONGINT; (*starting character position*)
- scrpHeight*: INTEGER; (*starting character position*)
- scrpAscent*: INTEGER;
- scrpFont*: INTEGER;
- scrpFace*: Types.Style; (*unpacked byte*)
- scrpSize*: INTEGER;
- scrpColor*: Quickdraw.RGBColor;
- END;
-
- (* ARRAY [0..1600] OF ScrpSTElement *)
- ScrpSTTable* = ARRAY 1601 (*ΔΔ[0..1600]ΔΔ*) OF ScrpSTElement;
-
- StScrpRec* = RECORD
- scrpNStyles*: INTEGER; (*number of styles in scrap*)
- scrpStyleTab*: ScrpSTTable; (*table of styles for scrap*)
- END;
-
- StScrpPtr* = POINTER TO StScrpRec;
- StScrpHandle* = HANDLE TO StScrpRec (*ΔΔ POINTER TO StScrpPtr*);
-
- NullStRec* = RECORD
- teReserved*: LONGINT; (*reserved for future expansion*)
- nullScrap*: StScrpHandle; (*handle to scrap style table*)
- END;
-
- NullStPtr* = POINTER TO NullStRec;
- NullStHandle* = HANDLE TO NullStRec (*ΔΔ POINTER TO NullStPtr*);
-
- TEStyleRec* = RECORD
- nRuns*: INTEGER; (*number of style runs*)
- nStyles*: INTEGER; (*size of style table*)
- styleTab*: STHandle; (*handle to style table*)
- lhTab*: LHHandle; (*handle to line-height table*)
- teRefCon*: LONGINT; (*reserved for application use*)
- nullStyle*: NullStHandle; (*Types.Handle to style set at null selection*)
- runs*: ARRAY 8001 (*ΔΔ[0..8000]ΔΔ*) OF StyleRun; (*ARRAY [0..8000] OF StyleRun*)
- END;
-
- TEStylePtr* = POINTER TO TEStyleRec;
- TEStyleHandle* = HANDLE TO TEStyleRec (*ΔΔ POINTER TO TEStylePtr*);
-
- TextStyle* = RECORD
- tsFont*: INTEGER; (*font (family) number*)
- tsFace*: Types.Style; (*character Types.Style*)
- tsSize*: INTEGER; (*size in point*)
- tsColor*: Quickdraw.RGBColor; (*absolute (RGB) color*)
- END;
-
- TextStylePtr* = POINTER TO TextStyle;
- TextStyleHandle* = HANDLE TO TextStyle (*ΔΔ POINTER TO TextStylePtr*);
-
- TEIntHook* = INTEGER;
-
-
- CONST
- uppHighHookProcInfo* = $0000000F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseHighHook ) *)
- uppEOLHookProcInfo* = $0000001F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseEOLHook ) *)
- uppCaretHookProcInfo* = $0000000F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseCaretHook ) *)
- uppWidthHookProcInfo* = $0000002F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseWidthHook ) *)
- uppTextWidthHookProcInfo* = $0000002F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseTextWidthHook ) *)
- uppNWidthHookProcInfo* = $0000003F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseNWidthHook ) *)
- uppDrawHookProcInfo* = $0000004F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseDrawHook ) *)
- uppHitTestHookProcInfo* = $0000005F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseHitTestHook ) *)
- uppTEFindWordProcInfo* = $0000006F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseTEFindWord ) *)
- uppTERecalcProcInfo* = $0000009F; (* SPECIAL_CASE_PROCINFO( kSpecialCaseTERecalc ) *)
- uppTEDoTextProcInfo* = $000000AF; (* SPECIAL_CASE_PROCINFO( kSpecialCaseTEDoText ) *)
- uppTEClickLoopProcInfo* = $0000F812; (* Register PROCEDURE (4 bytes in A3): 1 byte in D0; *)
- uppWordBreakProcInfo* = $00029812; (* Register PROCEDURE (4 bytes in A0, 2 bytes in D0): 1 byte in D0; *)
-
- PROCEDURE NewHighHookProc*(userRoutine: HighHookProcPtr): HighHookUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewEOLHookProc*(userRoutine: EOLHookProcPtr): EOLHookUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewCaretHookProc*(userRoutine: CaretHookProcPtr): CaretHookUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewWidthHookProc*(userRoutine: WidthHookProcPtr): WidthHookUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewTextWidthHookProc*(userRoutine: TextWidthHookProcPtr): TextWidthHookUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewNWidthHookProc*(userRoutine: NWidthHookProcPtr): NWidthHookUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewDrawHookProc*(userRoutine: DrawHookProcPtr): DrawHookUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewHitTestHookProc*(userRoutine: HitTestHookProcPtr): HitTestHookUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewTEFindWordProc*(userRoutine: TEFindWordProcPtr): TEFindWordUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewTERecalcProc*(userRoutine: TERecalcProcPtr): TERecalcUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewTEDoTextProc*(userRoutine: TEDoTextProcPtr): TEDoTextUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewTEClickLoopProc*(userRoutine: TEClickLoopProcPtr): TEClickLoopUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewWordBreakProc*(userRoutine: WordBreakProcPtr): WordBreakUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE CallHighHookProc*((*CONST*)VAR r: Types.Rect; pTE: TEPtr; userRoutine: HighHookUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL ; (*••*)
- (*To be implemented: Glue to move parameters according to special case conventions.*)
- (*$END*)
-
- PROCEDURE CallEOLHookProc*(theChar: Types.ByteParameter; pTE: TEPtr; hTE: TEHandle; userRoutine: EOLHookUPP): BOOLEAN;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL ; (*••*)
- (*To be implemented: Glue to move parameters according to special case conventions.*)
- (*$END*)
-
- PROCEDURE CallCaretHookProc*((*CONST*)VAR r: Types.Rect; pTE: TEPtr; userRoutine: CaretHookUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL ; (*••*)
- (*To be implemented: Glue to move parameters according to special case conventions.*)
- (*$END*)
-
- PROCEDURE CallWidthHookProc*(textLen: INTEGER; textOffset: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; pTE: TEPtr; hTE: TEHandle; userRoutine: WidthHookUPP): INTEGER;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL ; (*••*)
- (*To be implemented: Glue to move parameters according to special case conventions.*)
- (*$END*)
-
- PROCEDURE CallTextWidthHookProc*(textLen: INTEGER; textOffset: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; pTE: TEPtr; hTE: TEHandle; userRoutine: TextWidthHookUPP): INTEGER;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL ; (*••*)
- (*To be implemented: Glue to move parameters according to special case conventions.*)
- (*$END*)
-
- PROCEDURE CallNWidthHookProc*(styleRunLen: INTEGER; styleRunOffset: INTEGER; slop: INTEGER; direction: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; VAR lineStart: INTEGER; pTE: TEPtr; hTE: TEHandle; userRoutine: NWidthHookUPP): INTEGER;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL ; (*••*)
- (*To be implemented: Glue to move parameters according to special case conventions.*)
- (*$END*)
-
- PROCEDURE CallDrawHookProc*(textOffset: INTEGER; drawLen: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; pTE: TEPtr; hTE: TEHandle; userRoutine: DrawHookUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL ; (*••*)
- (*To be implemented: Glue to move parameters according to special case conventions.*)
- (*$END*)
-
- PROCEDURE CallHitTestHookProc*(styleRunLen: INTEGER; styleRunOffset: INTEGER; slop: INTEGER; textBufferPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; pTE: TEPtr; hTE: TEHandle; VAR pixelWidth: INTEGER; VAR charOffset: INTEGER; VAR pixelInChar: BOOLEAN; userRoutine: HitTestHookUPP): BOOLEAN;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL ; (*••*)
- (*To be implemented: Glue to move parameters according to special case conventions.*)
- (*$END*)
-
- PROCEDURE CallTEFindWordProc*(currentPos: INTEGER; caller: INTEGER; pTE: TEPtr; hTE: TEHandle; VAR wordStart: INTEGER; VAR wordEnd: INTEGER; userRoutine: TEFindWordUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL ; (*••*)
- (*To be implemented: Glue to move parameters according to special case conventions.*)
- (*$END*)
-
- PROCEDURE CallTERecalcProc*(pTE: TEPtr; changeLength: INTEGER; VAR lineStart: INTEGER; VAR firstChar: INTEGER; VAR lastChar: INTEGER; userRoutine: TERecalcUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL ; (*••*)
- (*To be implemented: Glue to move parameters according to special case conventions.*)
- (*$END*)
-
- PROCEDURE CallTEDoTextProc*(pTE: TEPtr; firstChar: INTEGER; lastChar: INTEGER; selector: INTEGER; VAR currentGrafPort: Quickdraw.GrafPtr; VAR charPosition: INTEGER; userRoutine: TEDoTextUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL ; (*••*)
- (*To be implemented: Glue to move parameters according to special case conventions.*)
- (*$END*)
-
- PROCEDURE CallTEClickLoopProc*(pTE: TEPtr; userRoutine: TEClickLoopUPP): BOOLEAN;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL ; (*••*)
- (*To be implemented: Glue to move parameters into registers.*)
- (*$END*)
-
- PROCEDURE CallWordBreakProc*(text: Types.Ptr; charPos: INTEGER; userRoutine: WordBreakUPP): BOOLEAN;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL ; (*••*)
- (*To be implemented: Glue to move parameters into registers.*)
- (*$END*)
- PROCEDURE TEScrapHandle*(): Types.Handle;
- (*$IF NOT CFMSYSTEMCALLS*)
- INLINE PASCAL $2EB8, $0AB4; (* MOVE.l $0AB4,(SP) *)
- (*$END*)
-
- PROCEDURE TEGetScrapLength*(): LONGINT;
- EXTERNAL PASCAL;
- PROCEDURE TEInit*;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9CC;
- (*$END*)
- PROCEDURE TENew*((*CONST*)VAR destRect: Types.Rect; (*CONST*)VAR viewRect: Types.Rect): TEHandle;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9D2;
- (*$END*)
- PROCEDURE TEDispose*(hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9CD;
- (*$END*)
- PROCEDURE TESetText*(text: (*ΔΔUNIVΔΔ*) Types.Ptr; length: LONGINT; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9CF;
- (*$END*)
- PROCEDURE TEGetText*(hTE: TEHandle): CharsHandle;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9CB;
- (*$END*)
- PROCEDURE TEIdle*(hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9DA;
- (*$END*)
- PROCEDURE TESetSelect*(selStart: LONGINT; selEnd: LONGINT; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9D1;
- (*$END*)
- PROCEDURE TEActivate*(hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9D8;
- (*$END*)
- PROCEDURE TEDeactivate*(hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9D9;
- (*$END*)
- PROCEDURE TEKey*(key: CHAR; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9DC;
- (*$END*)
- PROCEDURE TECut*(hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9D6;
- (*$END*)
- PROCEDURE TECopy*(hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9D5;
- (*$END*)
- PROCEDURE TEPaste*(hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9DB;
- (*$END*)
- PROCEDURE TEDelete*(hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9D7;
- (*$END*)
- PROCEDURE TEInsert*(text: (*ΔΔUNIVΔΔ*) Types.Ptr; length: LONGINT; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9DE;
- (*$END*)
- PROCEDURE TESetAlignment*(just: INTEGER; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9DF;
- (*$END*)
- PROCEDURE TEUpdate*((*CONST*)VAR rUpdate: Types.Rect; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9D3;
- (*$END*)
- PROCEDURE TETextBox*(text: (*ΔΔUNIVΔΔ*) Types.Ptr; length: LONGINT; (*CONST*)VAR box: Types.Rect; just: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9CE;
- (*$END*)
- PROCEDURE TEScroll*(dh: INTEGER; dv: INTEGER; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9DD;
- (*$END*)
- PROCEDURE TESelView*(hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A811;
- (*$END*)
- PROCEDURE TEPinScroll*(dh: INTEGER; dv: INTEGER; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A812;
- (*$END*)
- PROCEDURE TEAutoView*(fAuto: BOOLEAN; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A813;
- (*$END*)
- PROCEDURE TECalText*(hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9D0;
- (*$END*)
- PROCEDURE TEGetOffset*(pt: Types.Point; hTE: TEHandle): INTEGER;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A83C;
- (*$END*)
- PROCEDURE TEGetPoint*(offset: INTEGER; hTE: TEHandle): LONGINT (*ΔΔ Types.Point*);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0008, $A83D;
- (*$END*)
- PROCEDURE TEClick*(pt: Types.Point; fExtend: BOOLEAN; h: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9D4;
- (*$END*)
- PROCEDURE TEStyleNew*((*CONST*)VAR destRect: Types.Rect; (*CONST*)VAR viewRect: Types.Rect): TEHandle;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A83E;
- (*$END*)
- PROCEDURE TESetStyleHandle*(theHandle: TEStyleHandle; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0005, $A83D;
- (*$END*)
- PROCEDURE TEGetStyleHandle*(hTE: TEHandle): TEStyleHandle;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0004, $A83D;
- (*$END*)
- PROCEDURE TEGetStyle*(offset: INTEGER; VAR theStyle: TextStyle; VAR lineHeight: INTEGER; VAR fontAscent: INTEGER; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0003, $A83D;
- (*$END*)
- PROCEDURE TEStylePaste*(hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0000, $A83D;
- (*$END*)
- PROCEDURE TESetStyle*(mode: INTEGER; (*CONST*)VAR newStyle: TextStyle; fRedraw: BOOLEAN; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0001, $A83D;
- (*$END*)
- PROCEDURE TEReplaceStyle*(mode: INTEGER; (*CONST*)VAR oldStyle: TextStyle; (*CONST*)VAR newStyle: TextStyle; fRedraw: BOOLEAN; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0002, $A83D;
- (*$END*)
- PROCEDURE TEGetStyleScrapHandle*(hTE: TEHandle): StScrpHandle;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0006, $A83D;
- (*$END*)
- PROCEDURE TEStyleInsert*(text: (*ΔΔUNIVΔΔ*) Types.Ptr; length: LONGINT; hST: StScrpHandle; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0007, $A83D;
- (*$END*)
- PROCEDURE TEGetHeight*(endLine: LONGINT; startLine: LONGINT; hTE: TEHandle): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0009, $A83D;
- (*$END*)
- PROCEDURE TEContinuousStyle*(VAR mode: INTEGER; VAR aStyle: TextStyle; hTE: TEHandle): BOOLEAN;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $000A, $A83D;
- (*$END*)
- PROCEDURE TEUseStyleScrap*(rangeStart: LONGINT; rangeEnd: LONGINT; newStyles: StScrpHandle; fRedraw: BOOLEAN; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $000B, $A83D;
- (*$END*)
- PROCEDURE TECustomHook*(which: TEIntHook; VAR addr: Types.UniversalProcPtr; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $000C, $A83D;
- (*$END*)
- PROCEDURE TENumStyles*(rangeStart: LONGINT; rangeEnd: LONGINT; hTE: TEHandle): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $000D, $A83D;
- (*$END*)
- PROCEDURE TEFeatureFlag*(feature: INTEGER; action: INTEGER; hTE: TEHandle): INTEGER;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $000E, $A83D;
- (*$END*)
- PROCEDURE TEGetHiliteRgn*(region: Quickdraw.RgnHandle; hTE: TEHandle): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $000F, $A83D;
- (*$END*)
- PROCEDURE TESetScrapLength*(length: LONGINT);
- EXTERNAL PASCAL;
- PROCEDURE TEFromScrap*(): Types.OSErr;
- EXTERNAL PASCAL;
- PROCEDURE TEToScrap*(): Types.OSErr;
- EXTERNAL PASCAL;
- PROCEDURE TESetClickLoop*(clikProc: TEClickLoopUPP; hTE: TEHandle);
- EXTERNAL PASCAL;
- PROCEDURE TESetWordBreak*(wBrkProc: WordBreakUPP; hTE: TEHandle);
- EXTERNAL PASCAL;
- (*
- There is no function to get/set the low-mem for FindWordHook at 0x07F8.
- This is because it is not a low-mem Types.ProcPtr. That address is the entry
- in the OS TrapTable for trap 0xA0FE. You can use Get/SetTrapAddress to
- acccess it.
- *)
- (*$IF OLDROUTINENAMES *)
- PROCEDURE TESetJust*(just: INTEGER; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9DF;
- (*$END*)
- PROCEDURE TextBox*(text: (*ΔΔUNIVΔΔ*) Types.Ptr; length: LONGINT; (*CONST*)VAR box: Types.Rect; just: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9CE;
- (*$END*)
- PROCEDURE TEStylNew*((*CONST*)VAR destRect: Types.Rect; (*CONST*)VAR viewRect: Types.Rect): TEHandle;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A83E;
- (*$END*)
- PROCEDURE SetStylHandle*(theHandle: TEStyleHandle; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0005, $A83D;
- (*$END*)
- PROCEDURE SetStyleHandle*(theHandle: TEStyleHandle; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0005, $A83D;
- (*$END*)
- PROCEDURE GetStylHandle*(hTE: TEHandle): TEStyleHandle;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0004, $A83D;
- (*$END*)
- PROCEDURE GetStyleHandle*(hTE: TEHandle): TEStyleHandle;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0004, $A83D;
- (*$END*)
- PROCEDURE TEStylPaste*(hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0000, $A83D;
- (*$END*)
- PROCEDURE GetStylScrap*(hTE: TEHandle): StScrpHandle;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0006, $A83D;
- (*$END*)
- PROCEDURE GetStyleScrap*(hTE: TEHandle): StScrpHandle;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0006, $A83D;
- (*$END*)
- PROCEDURE SetStylScrap*(rangeStart: LONGINT; rangeEnd: LONGINT; newStyles: StScrpHandle; fRedraw: BOOLEAN; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $000B, $A83D;
- (*$END*)
- PROCEDURE SetStyleScrap*(rangeStart: LONGINT; rangeEnd: LONGINT; newStyles: StScrpHandle; fRedraw: BOOLEAN; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $000B, $A83D;
- (*$END*)
- PROCEDURE TEStylInsert*(text: (*ΔΔUNIVΔΔ*) Types.Ptr; length: LONGINT; hST: StScrpHandle; hTE: TEHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0007, $A83D;
- (*$END*)
- PROCEDURE TESetScrapLen*(length: LONGINT);
- EXTERNAL PASCAL;
- PROCEDURE TEGetScrapLen*(): LONGINT;
- EXTERNAL PASCAL;
- PROCEDURE SetClikLoop*(clikProc: TEClickLoopUPP; hTE: TEHandle);
- EXTERNAL PASCAL;
- PROCEDURE SetWordBreak*(wBrkProc: WordBreakUPP; hTE: TEHandle);
- EXTERNAL PASCAL;
- (*$END*)
-
- (* $ALIGN RESET*)
- (* $POP*)
-
- END TextEdit.
-